package simulator;

/**
 * Listener udalosti firmy.
 * 
 * @author Petr Altman
 */
public interface CompanyListener {

	/**
	 * Udalost zpracovani objednavky.
	 * @param order Zpracovana objednavka.
	 */
	public void onOrderProcessed(Order order);
	
	/**
	 * Udalost prijeti (akceptovani) objednavky.
	 * @param order Prijata objednavka.
	 */
	public void onOrderReceived(Order order);
	
	/**
	 * Udalost odmitnuti objednavky.
	 * @param order Odmitnuta objednavka.
	 */
	public void onOrderRefused(Order order);
	
	/**
	 * Udalost zmeny stavu nakladaku.
	 * @param truck Aktualizovany nakladak.
	 */
	public void onTruckStateUpdated(Truck truck);
	
	/**
	 * Udalost preplanovani trasy nakladaku.
	 * @param truck Nakladak, kteremu byla preplanovana trasa.
	 */
	public void onTruckPathReplanned(Truck truck);
	
	/**
	 * Udalost pridani noveho nakladaku do firmy.
	 * @param truck Novy nakladak.
	 */
	public void onTruckAdded(Truck truck);
	
	/**
	 * Udalost zpracovani procesu nakladaku, tj. udalost prijezdu nakladaku zpet do firmy z sichty.
	 * @param truck Zpracovany nakladak.
	 */
	public void onTruckProcessed(Truck truck);
	
	/**
	 * Udalost dokonceni vsech objednavek a procesu firmy.
	 */
	public void onEnd();
	
}
